<?php
//   +----------------------------------------------------------------------
//   | Copyright (c) 2015-2025 http://www.hdphp.cn All rights reserved.
//   | Licensed ( http://www.hdphp.cn/licenses/ )
//   | Author: Jack <sophia2152@qq.com>
//   | 官方网址: http://www.hdphp.cn
//   | 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用。
//   | 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
//   +----------------------------------------------------------------------

use think\facade\Route;

/**
 * 系统、维护相关路由
 */
Route::group('system', function () {

    /** 管理员 */
    Route::group(function () {
        // 管理员列表
        Route::get('admin/list', 'v1.system.admin.SystemAdmin/index')->name('SystemAdminIndex')->option(['real_name' => '管理员列表']);
        // 创建管理员
        Route::post('admin/create', 'v1.system.admin.SystemAdmin/add')->name('SystemAdminCreate')->option(['real_name' => '创建管理员']);
        // 获取详情
        Route::get('admin/read/:id', 'v1.system.admin.SystemAdmin/read')->name('SystemAdminRead')->option(['real_name' => '管理员详情']);
        // 修改管理员
        Route::put('admin/update/:id', 'v1.system.admin.SystemAdmin/edit')->name('SystemAdminUpdate')->option(['real_name' => '修改管理员']);
        // 修改状态
        Route::put('admin/set_status/:id/:status', 'v1.system.admin.SystemAdmin/set_status')->name('SystemAdminSetStatus')->option(['real_name' => '修改管理员状态']);
        // 删除管理员
        Route::delete('admin/delete/:id', 'v1.system.admin.SystemAdmin/delete')->name('SystemAdminDelete')->option(['real_name' => '删除管理员']);
        // 获取当前管理员信息
        Route::get('admin/info', 'v1.system.admin.SystemAdmin/info')->name('SystemAdminInfo')->option(['real_name' => '获取当前管理员信息']);
        // 修改当前管理员信息
        Route::put('admin/update_admin', 'v1.system.admin.SystemAdmin/update_admin')->name('SystemAdminUpdateAdmin')->option(['real_name' => '修改当前管理员信息']);
        // 退出登陆
        Route::get('admin/logout', 'v1.system.admin.SystemAdmin/logout')->name('SystemAdminLogout')->option(['real_name' => '退出登陆']);

        // 获取权限列表
        Route::get('admin/menus', 'v1.system.admin.SystemAdmin/get_menus')->option(['real_name' => '获取权限列表']);

    })->option(['parent' => 'system', 'cate_name' => '管理员']);

    /** 管理员角色 */
    Route::group(function () {
        // 角色列表
        Route::get('role/list', 'v1.system.SystemRole/index')->option(['real_name' => '角色列表']);
        // 角色权限列表
        Route::get('role/role_menus', 'v1.system.SystemRole/role_menus')->option(['real_name' => '角色权限列表']);
        // 角色详情
        Route::get('role/read/:id', 'v1.system.SystemRole/read')->option(['real_name' => '角色详情']);
        // 新建或编辑
        Route::post('role/create/:id', 'v1.system.SystemRole/save')->option(['real_name' => '新建或编辑角色']);
        // 修改角色状态
        Route::put('role/set_status/:id/:status', 'v1.system.SystemRole/set_status')->option(['real_name' => '修改角色状态']);
        // 删除角色
        Route::delete('role/delete/:id', 'v1.system.SystemRole/delete')->option(['real_name' => '删除角色']);
        // 角色列表搜索条件
        Route::get('role/search_roles', 'v1.system.SystemRole/select_list')->option(['real_name' => '角色列表搜索条件']);
    })->option(['parent' => 'system', 'cate_name' => '管理员角色']);

    /** 权限菜单 */
    Route::group(function () {
        // 菜单列表
        Route::get('menus/list', 'v1.system.SystemMenus/index')->option(['real_name' => '菜单列表']);
        // 获取菜单权限和权限标识
        Route::get('menus/unique', 'v1.system.SystemMenus/unique')->name('SystemMenusUnique')->option(['real_name' => '获取菜单权限和权限标识']);
        // 菜单详情
        Route::get('menus/read/:id', 'v1.system.SystemMenus/read')->name('SystemMenusRead')->option(['real_name' => '菜单详情']);
        // 创建菜单
        Route::post('menus/create', 'v1.system.SystemMenus/save')->name('SystemMenusCreate')->option(['real_name' => '创建菜单']);
        // 修改菜单
        Route::put('menus/update/:id', 'v1.system.SystemMenus/update')->name('SystemMenusUpdate')->option(['real_name' => '修改菜单']);
        // 修改显示
        Route::put('menus/show/:id', 'v1.system.SystemMenus/set_show')->name('SystemMenusShow')->option(['real_name' => '修改显示']);
        // 删除菜单
        Route::delete('menus/delete/:id', 'v1.system.SystemMenus/delete')->name('SystemMenusDelete')->option(['real_name' => '删除菜单']);

    })->option(['parent' => 'system', 'cate_name' => '权限菜单']);
    
    /** 系统日志 */
    Route::group(function () {
        // 系统日志
        Route::get('log', 'v1.system.log.SystemLog/index')->name('SystemLog')->option(['real_name' => '系统日志']);
        // 系统登录日志
        Route::get('log/login', 'v1.system.log.SystemLoginLog/index')->name('SystemLoginLog')->option(['real_name' => '系统登录日志']);
        // 系统日志管理员搜索条件
        Route::get('log/search_admin', 'v1.system.log.SystemLog/search_admin')->option(['real_name' => '系统日志管理员搜索条件']);
        // 文件校验
        Route::get('file', 'v1.system.log.SystemFile/index')->name('SystemFile')->option(['real_name' => '文件校验']);
    })->option(['parent' => 'system', 'cate_name' => '系统日志']);


})->middleware([
    \app\http\middleware\AllowOriginMiddleware::class,
    \app\adminapi\middleware\AdminAuthTokenMiddleware::class,
    \app\adminapi\middleware\AdminCheckRoleMiddleware::class,
    \app\adminapi\middleware\AdminLogMiddleware::class
])->option(['mark' => 'system', 'mark_name' => '系统维护']);
